/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package lru;

/**
 *
 * @author EDGAR
 */
public class LRU {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        GestorMemoriaIntermedia gestorBuffer = new GestorMemoriaIntermedia(5);
        // Paginas del Disco
        System.out.println("Paginas del Disco: ");
        Pagina[] paginas = new Pagina[10];
        for (int i = 0; i < paginas.length; i++) {
            Pagina pagina = new Pagina(i, "p" + i);
            paginas[i] = pagina;
            System.out.println(pagina);
        }

        System.out.println("Contenido del Gestor: ");
        System.out.println(gestorBuffer);


        for (int i = 0; i < paginas.length; i++) {
            gestorBuffer.ponerPaginaEnBuffer(paginas[i]);
        }

        System.out.println("Contenido del Gestor despues de poner bloques: ");
        System.out.println(gestorBuffer);

        // APARTIR DE AQUI SE APLICA EL METODO LRU, DONDE ESTAMOS REMPLAZANDO EL ARCHIVO RECIENTEMENTE MENOS UTILIZADO
        //PARA LO CUAL INICIALIZAMOS NUESTRO GESTOR DE MEMORIA CON 5 PAGINAS O BLOQUES DE MEMORIA
        //COMO SE PODRA VER EN LE RESULTADO LOS MOVIMIENTOS REALIZADOS PARA PODER COLOCAR EN LA AMEMORIA INTERMEDIA TODOS LOS REGISTROS 
        // DEL DICO DURO.
        System.out.println("Poner una página al Buffer: ");
        Pagina paginaN = new Pagina(1,"p1");
        Pagina paginaE = gestorBuffer.ponerPaginaEnBuffer(paginaN);
        System.out.println(paginaE);
        System.out.println(gestorBuffer);
        
        System.out.println("Poner una página al Buffer: ");
        Pagina paginaN1 = new Pagina(2,"p2");
        Pagina paginaE1 = gestorBuffer.ponerPaginaEnBuffer(paginaN1);
        System.out.println(paginaE1);
        System.out.println(gestorBuffer);
        
        System.out.println("Poner una página al Buffer: ");
        Pagina paginaN2 = new Pagina(3,"p3");
        Pagina paginaE2 = gestorBuffer.ponerPaginaEnBuffer(paginaN2);
        System.out.println(paginaE2);
        System.out.println(gestorBuffer);
        
        System.out.println("Poner una página al Buffer: ");
        Pagina paginaN3 = new Pagina(4,"p4");
        Pagina paginaE3 = gestorBuffer.ponerPaginaEnBuffer(paginaN3);
        System.out.println(paginaE3);
        System.out.println(gestorBuffer);
        
        
//        System.out.println("Recuperar una Pagina del Buffer: ");
//        Pagina pagina1 = gestorBuffer.recuperarPaginaDelBuffer(7);
//        System.out.println(pagina1);
//        System.out.println(gestorBuffer);
//
//        System.out.println("Recuperar otra Pagina del Buffer: ");
//        Pagina pagina2 = gestorBuffer.recuperarPaginaDelBuffer(1);
//        System.out.println(pagina2);
//        System.out.println(gestorBuffer);
    
    }
}
